--部分功能物品的延迟效果处理 

--每个回调对应一个id,根据id查找对应的回调函数
--#include "data\functions\Activity\PKChallenge\PKChallengeCommon.lua" once  --处理pk挑战退出
--#include ""data\functions\FuBenNpcFunc\exitFubenFunc.lua"  once

--延迟消息定义
DELAY_MSG_ACTIVITY_PANEL  =  15 		--发送活动面板	
DELAY_MSG_HERO_RELIVE_TIME = 18			--英雄复活次数
LocalDT.ScriptDelayConfig =
{
	--[1] = {},	--回城传送
	--[2] = {},	--阵营传送               --暂时无用，删掉了
	--[3] = {}, 	--放置炸药包              --暂时无用，删掉了
	--[4] = {}, 	--某地方放置物品             --暂时无用，删掉了
	--[5] = {},	--使用疾风令
	--[6] = {},	--使用修为封存宝盒   --暂时无用，删掉了
	--[7] = {},	--使用经验封存宝盒   --暂时无用，删掉了
	[8] = {},	--使用道具刷怪延时
	--[9] = {},   --使用开启宠物道具 
	--[10] = {}, 	-- 宝物骑乘             --暂时无用，删掉了
	--[11] = {}, 	--使用圣火素材
	--[12] = {},	--使用阵营召集令   --暂时无用，删掉了
	--[13] = {},	--活动速传
	--[14] = {},	--离开活动场景
	[DELAY_MSG_ACTIVITY_PANEL] = {},		--发送1次左侧面板信息
	[16] = {},	--离开当前副本
	[17] = {},	--回城
	[18] = {},
}

--#include "data\language\LangCode.txt" once --语言包


-----------------------------------------------如果是小的回调函数就写这里


--进入活动的召唤
function ActivityTransmitCallback(sysarg,arg)
	local sceneId = arg[2]
	local pos_x = arg[3]
	local pos_y = arg[4]
	Actor.enterScene(sysarg,sceneId,pos_x,pos_y)
end




-------------------------------------------------------------------------通用的函数
--注册回调一个脚本延期回调的函数
function registerScriptCallBack( callbackId,func)
   if(callbackId ==nil or func ==nil) then return end
   table.insert(LocalDT.ScriptDelayConfig[callbackId],func)
end

--[[
时间到进行回调
]]
EventCallDispatcher.ScriptDelayCallback = function (sysarg,arg)
  	if arg == nil then return print("arg is null!") end
  	local type = arg[1]
  	if LocalDT.ScriptDelayConfig[type] ~= nil then 
     	--print("-------------")
     	local actorName = Actor.getName( sysarg )
		local actorId 	= Actor.getActorId( sysarg )

     	local fnTable = LocalDT.ScriptDelayConfig[type]
	 	--print(#fnTable)
     	for i=1,#fnTable do
      		fnTable[i](sysarg,arg)
			System.sendCommonLog( GameLog.clScriptDelayCallback, actorId, actorName, type, 0, 0,'','', "DelayCall" )
			--print("ScriptDelayCallback, actorName="..actorName..", type="..type)
     	end
  	end
end

EventCallDispatcher.registerEventCall(BaseTypes.ActorEventId.aeScriptDelayCallback, EventCallDispatcher.ScriptDelayCallback)

--[[
延迟几秒再次发送活动面板
]]
function OpenActivityPanelInDelay( sysarg )
	local sceneId = Actor.getSceneId( sysarg )
	--print("OpenActivityPanelInDelay, sceneId="..sceneId)
	if IsInBossHome( sceneId) then
		InitBossHomePanel( sysarg )
	end
end


--registerScriptCallBack(13, ActivityTransmitCallback)
registerScriptCallBack( DELAY_MSG_ACTIVITY_PANEL, OpenActivityPanelInDelay ) 		--注册延迟发送活动面板
registerScriptCallBack(16, Actor.exitFuben) 				--注册离开副本
registerScriptCallBack(17, Actor.returnCity) 				--注册回城

--如果函数比较麻烦，就在这里
----#include "RapidMoveItem.lua" once  --疾风令

----#include "data\functions\ActorEvent\ScriptDelayCallBackItem\LeaveActivitySceneCallback.lua" once	--离开活动场景

